The design cycle for a digital integrated circuit is long and expensive. Once the first chip is built, it is very difficult, and often impossible, to debug it by probing internal connections or to change the gates and interconnections. Usually, modifications must be made in the original design database and a new chip must be manufactured to incorporate the required changes. Since this process can take months to complete, chip designers are highly motivated to attempt to perfect the chip prior to manufacturing.
It is therefore essential to identify and quantify the architectural requirements necessary to assure good performance over a wide range of events prior to manufacturing the digital integrated circuit. Accordingly, a simulator comprising program code may be employed to provide a simulation environment that is executable on top of a host computer platform in order to model at least some or all of the functionalities of the desired integrated circuit, for example, a target processor core. The characteristics of the target processor core that the simulator emulates may be specified to include processor architectural model, processor clock speed, cache configuration, disk seek time, memory system bus bandwidth, and numerous other parameters. The resulting software-based target processor core provides the appearance of being a normal processor core while a test generator exercises the target processor core with test cases in order to collect detailed hardware behavior data only available through the use of the simulation. In particular, inputs supplied the test generator define specific hardware functionalities to be tested. The resulting test files the test generator gathers may be subsequently utilized to better understand various aspects of the simulated target processor's core.
By modeling the processor core, simulation is able to provide an accurate model that allows each aspect of the simulated processor core's behavior to match that of a specific target processor core. As a result, simulations can provide visibility that translates into detailed information regarding each aspect of the target processor core's execution behavior. Simulators are not without limitations, however. Debugging the models of the target processor core and the test cases can be a laborious and time consuming task. In particular, analyzing the code or set of instructions that defines the test cases can be a daunting task.